<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SPHinXsys: SPHINXsys/src/shared/meshes/mesh_cell_linked_list.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SPHinXsys
   &#160;<span id="projectnumber">alpha version</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_3dc1dabd28ba78e072d14d3fcfc90454.html">SPHINXsys</a></li><li class="navelem"><a class="el" href="dir_48ea983704c43b6d88c1fa3f4d09e369.html">src</a></li><li class="navelem"><a class="el" href="dir_0a0d9ef1793521534f0094f317758287.html">shared</a></li><li class="navelem"><a class="el" href="dir_61d72b4dd46479d55af927dc89c7a78c.html">meshes</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">mesh_cell_linked_list.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="mesh__cell__linked__list_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/* -------------------------------------------------------------------------*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">*                               SPHinXsys                                   *</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">* --------------------------------------------------------------------------*</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">* SPHinXsys (pronunciation: s&#39;finksis) is an acronym from Smoothed Particle *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">* Hydrodynamics for industrial compleX systems. It provides C++ APIs for    *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">* physical accurate simulation and aims to model coupled industrial dynamic *</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">* systems including fluid, solid, multi-body dynamics and beyond with SPH   *</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">* (smoothed particle hydrodynamics), a meshless computational method using  *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">* particle discretization.                                                  *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">*                                                                           *</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">* SPHinXsys is partially funded by German Research Foundation               *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">* (Deutsche Forschungsgemeinschaft) DFG HU1527/6-1, HU1527/10-1             *</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">* and HU1527/12-1.                                                          *</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">*                                                                           *</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">* Portions copyright (c) 2017-2020 Technical University of Munich and       *</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">* the authors&#39; affiliations.                                                *</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">*                                                                           *</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may   *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">* not use this file except in compliance with the License. You may obtain a *</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">* copy of the License at http://www.apache.org/licenses/LICENSE-2.0.        *</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">*                                                                           *</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">* --------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="base__mesh_8h.html">base_mesh.h</a>&quot;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="neighbor__relation_8h.html">neighbor_relation.h</a>&quot;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_s_p_h.html">SPH</a> {</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keyword">class </span>SPHSystem;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keyword">class </span>SPHBody;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keyword">class </span>BaseParticles;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">class </span>Kernel;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_cell_list.html">   49</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_cell_list.html">CellList</a></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    {</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_cell_list.html#a8ea5d710631cb6bb539065732a51e7e0">   53</a></span>&#160;        <a class="code" href="namespace_s_p_h.html#a1d45b2f40a5958c27e08837b107dc995">ConcurrentIndexVector</a> <a class="code" href="class_s_p_h_1_1_cell_list.html#a8ea5d710631cb6bb539065732a51e7e0">concurrent_particle_indexes_</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_cell_list.html#a2ca9d9c369de81d5d6d005264d681ab4">   55</a></span>&#160;        <a class="code" href="namespace_s_p_h.html#a856451cbf2b050bbfc31b266ec4f7022">CellListDataVector</a> <a class="code" href="class_s_p_h_1_1_cell_list.html#a2ca9d9c369de81d5d6d005264d681ab4">cell_list_data_</a>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_cell_list.html#a399df456f271a30ca523db0a4f46e520">   57</a></span>&#160;        <a class="code" href="namespace_s_p_h.html#abae56fd7f25f13487c7943ce4681d0ce">IndexVector</a> <a class="code" href="class_s_p_h_1_1_cell_list.html#a399df456f271a30ca523db0a4f46e520">real_particle_indexes_</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <a class="code" href="class_s_p_h_1_1_cell_list.html">CellList</a>();</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        ~<a class="code" href="class_s_p_h_1_1_cell_list.html">CellList</a>() {};</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    };</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">   67</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">BaseMeshCellLinkedList</a> : <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_mesh.html">Mesh</a></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <a class="code" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a>&amp; sph_body_;</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <a class="code" href="class_s_p_h_1_1_kernel.html">Kernel</a>&amp; kernel_;</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <a class="code" href="class_s_p_h_1_1_base_particles.html">BaseParticles</a>* base_particles_;</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a987e39e47f21fff71ee821444dce62ed">clearSplitCellLists</a>(<a class="code" href="namespace_s_p_h.html#ac592bbe202be73decfcbfe8201484ffa">SplitCellLists</a>&amp; split_cell_lists);</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#ad980615aed277f748a06aa3ca97c3273">updateSplitCellLists</a>(<a class="code" href="namespace_s_p_h.html#ac592bbe202be73decfcbfe8201484ffa">SplitCellLists</a>&amp; split_cell_lists) = 0;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a18327f6cebb5394cab4a0f8cd9a46bde">BaseMeshCellLinkedList</a>(<a class="code" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a>&amp; sph_body, <a class="code" href="class_s_p_h_1_1_particle_adaptation.html">ParticleAdaptation</a>&amp; particle_adaptation, </div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a> tentative_bounds, Real grid_spacing, <span class="keywordtype">size_t</span> buffer_width = 2);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">BaseMeshCellLinkedList</a>() {};</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#addc1a14963813126a2ddfd029ae6da53">assignBaseParticles</a>(<a class="code" href="class_s_p_h_1_1_base_particles.html">BaseParticles</a>* base_particles) = 0;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a63755fbcd778da3d392e4625f6d570ef">UpdateCellLists</a>() = 0;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#ad080cedda0ee36819b73dddfbbc1aa99">insertACellLinkedParticleIndex</a>(<span class="keywordtype">size_t</span> particle_index, Vecd particle_position) = 0;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a944de97f05bd6329ef454d9fd2bd483d">InsertACellLinkedListDataEntry</a>(<span class="keywordtype">size_t</span> particle_index, Vecd particle_position) = 0;</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespace_s_p_h.html#a7fbc15167459a37683f40cb4a5aa0f06">ListData</a> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#ac40dd15b13323d2d2a1c308cbf807af7">findNearestListDataEntry</a>(Vecd&amp; position) = 0;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#af111d1a1118c6db6a19d8b44811393d0">computingSequence</a>(StdLargeVec&lt;size_t&gt;&amp; sequence) = 0;</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a811c9f52e53982d2e66202625e682c30">tagBodyPartByCell</a>(<a class="code" href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">CellLists</a>&amp; cell_lists, std::function&lt;<span class="keywordtype">bool</span>(Vecd, Real)&gt;&amp; check_included) = 0;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a0f5b0383f2668019643df8761246527c">tagBodyDomainBoundingCells</a>(StdVec&lt;CellLists&gt;&amp; cell_lists, <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a>&amp; body_domain_bounds, <span class="keywordtype">int</span> axis) = 0;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a6c8a9a16b596c2f50eb016060040dcea">tagMirrorBoundingCells</a>(<a class="code" href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">CellLists</a>&amp; cell_lists, <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a>&amp; body_domain_bounds, <span class="keywordtype">int</span> axis, <span class="keywordtype">bool</span> positive) = 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    };</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_mesh_cell_linked_list.html">  111</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html">MeshCellLinkedList</a> : <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">BaseMeshCellLinkedList</a></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    {</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a779f66201dda742f7888bd6f17dc4288">  116</a></span>&#160;        <a class="code" href="class_s_p_h_1_1_cell_list.html">matrix_cell</a> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a779f66201dda742f7888bd6f17dc4288">cell_linked_lists_</a>;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a366378431a76e4d2bc1c5020b94f5822">updateSplitCellLists</a>(<a class="code" href="namespace_s_p_h.html#ac592bbe202be73decfcbfe8201484ffa">SplitCellLists</a>&amp; split_cell_lists) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html">MeshCellLinkedList</a>(<a class="code" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a>&amp; sph_body, <a class="code" href="class_s_p_h_1_1_particle_adaptation.html">ParticleAdaptation</a>&amp; particle_adaptation, </div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a> tentative_bounds, Real grid_spacing, <span class="keywordtype">size_t</span> buffer_width = 2);</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html">MeshCellLinkedList</a>() { <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#ada1a1f766ca5a8ba020bfaed1365fe20">deleteMeshDataMatrix</a>(); };</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a9c613140524b249bacdda660ea034c4f">allocateMeshDataMatrix</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#ada1a1f766ca5a8ba020bfaed1365fe20">deleteMeshDataMatrix</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a1b58d3ca4e60cb4a8cea294e8d4f8f1b">assignBaseParticles</a>(<a class="code" href="class_s_p_h_1_1_base_particles.html">BaseParticles</a>* base_particles) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordtype">void</span> clearCellLists();</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordtype">void</span> UpdateCellListData();</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a8c9d043f14c2b4c80f2fc7f7580d05bb">UpdateCellLists</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a8746ce9df2de1eaae23f8db58e338d3c">insertACellLinkedParticleIndex</a>(<span class="keywordtype">size_t</span> particle_index, Vecd particle_position) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a7c9cf2d1e07d89889290ee1898360837">InsertACellLinkedListDataEntry</a>(<span class="keywordtype">size_t</span> particle_index, Vecd particle_position) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespace_s_p_h.html#a7fbc15167459a37683f40cb4a5aa0f06">ListData</a> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#abd59a167627596a884755d3d16000b75">findNearestListDataEntry</a>(Vecd&amp; position) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#ad59e41c37c358ddd30fedd194f4e8673">computingSequence</a>(StdLargeVec&lt;size_t&gt;&amp; sequence) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a946badf5235c75ef060f9a5081424b04">tagBodyPartByCell</a>(<a class="code" href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">CellLists</a>&amp; cell_lists, std::function&lt;<span class="keywordtype">bool</span>(Vecd, Real)&gt;&amp; check_included) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#afc6a8456e3cd0b9c5a48a24bc527aec8">tagBodyDomainBoundingCells</a>(StdVec&lt;CellLists&gt;&amp; cell_lists, <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a>&amp; body_domain_bounds, <span class="keywordtype">int</span> axis) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a22672d86d257723623d17c2d033d0378">tagMirrorBoundingCells</a>(<a class="code" href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">CellLists</a>&amp; cell_lists, <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a>&amp; body_domain_bounds, <span class="keywordtype">int</span> axis, <span class="keywordtype">bool</span> positive) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#a45cd0d458dd88bbb4a6ae84c786c6655">writeMeshToPltFile</a>(std::ofstream&amp; output_file) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keyword">template</span>&lt;<span class="keyword">typename</span> GetParticleIndex, <span class="keyword">typename</span> GetSearchRange, <span class="keyword">typename</span> GetNeighborRelation&gt;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_mesh_cell_linked_list.html#aa83d5000985b89b40625299fab372fea">searchNeighborsByParticles</a>(<span class="keywordtype">size_t</span> total_real_particles, <a class="code" href="class_s_p_h_1_1_base_particles.html">BaseParticles</a>&amp; source_particles, </div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            <a class="code" href="namespace_s_p_h.html#a720b2214c518c3299a6d4895dacddc50">ParticleConfiguration</a>&amp; particle_configuration, GetParticleIndex&amp; get_particle_index,</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            GetSearchRange&amp; get_search_range, GetNeighborRelation&amp; get_neighbor_relation);</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    };</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html">  152</a></span>&#160;    <span class="keyword">class </span><a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html">MultilevelMeshCellLinkedList</a> : </div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keyword">public</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh.html">MultilevelMesh</a>&lt;SPHBody, BaseMeshCellLinkedList, MeshCellLinkedList&gt;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    {</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        StdLargeVec&lt;Real&gt;&amp; h_ratio_;    </div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a51ef5b9d251f71431f85a7c1ce823229">  157</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a51ef5b9d251f71431f85a7c1ce823229">updateSplitCellLists</a>(<a class="code" href="namespace_s_p_h.html#ac592bbe202be73decfcbfe8201484ffa">SplitCellLists</a>&amp; split_cell_lists)<span class="keyword"> override </span>{};</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a7a61370575f4582beede1b5f8f62d51a">getMeshLevel</a>(Real particle_cutoff_radius);</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html">MultilevelMeshCellLinkedList</a>(<a class="code" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a>&amp; sph_body, <a class="code" href="class_s_p_h_1_1_particle_adaptation.html">ParticleAdaptation</a>&amp; particle_adaptation, </div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a> tentative_bounds, Real reference_grid_spacing, </div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            <span class="keywordtype">size_t</span> total_levels, Real maximum_spacing_ratio);</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html">MultilevelMeshCellLinkedList</a>() {};</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a483dd019eb53161f090387a08054b233">assignBaseParticles</a>(BaseParticles* base_particles) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a0a14361278e2f504cba9627766dbb8a3">UpdateCellLists</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a0c8fb4ae37692882730a4159b67cba1b">insertACellLinkedParticleIndex</a>(<span class="keywordtype">size_t</span> particle_index, <a class="code" href="class_vecd.html">Vecd</a> particle_position) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a7efecefce3a999c74b01a0167c597d18">InsertACellLinkedListDataEntry</a>(<span class="keywordtype">size_t</span> particle_index, <a class="code" href="class_vecd.html">Vecd</a> particle_position) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#ab081c836d1f163a2cae719300ea9e788">  170</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespace_s_p_h.html#a7fbc15167459a37683f40cb4a5aa0f06">ListData</a> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#ab081c836d1f163a2cae719300ea9e788">findNearestListDataEntry</a>(Vecd&amp; position)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="namespace_s_p_h.html#a7fbc15167459a37683f40cb4a5aa0f06">ListData</a>(0, Vecd(0)); };</div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#acc8ee99cca328cd3040266a1b9a128d1">  171</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#acc8ee99cca328cd3040266a1b9a128d1">computingSequence</a>(StdLargeVec&lt;size_t&gt;&amp; sequence)<span class="keyword"> override </span>{};</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#aed202e1ebf12cd1261f0fda8aa01137b">tagBodyPartByCell</a>(<a class="code" href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">CellLists</a>&amp; cell_lists, std::function&lt;<span class="keywordtype">bool</span>(Vecd, Real)&gt;&amp; check_included) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a29380e67d8417f62a13c9b1ba949d80d">  173</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a29380e67d8417f62a13c9b1ba949d80d">tagBodyDomainBoundingCells</a>(StdVec&lt;CellLists&gt;&amp; cell_lists, <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a>&amp; body_domain_bounds, <span class="keywordtype">int</span> axis)<span class="keyword"> override </span>{};</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a69d520a6149f45c8938ba4329d3b92ad">  174</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a69d520a6149f45c8938ba4329d3b92ad">tagMirrorBoundingCells</a>(<a class="code" href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">CellLists</a>&amp; cell_lists, <a class="code" href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">BoundingBox</a>&amp; body_domain_bounds, <span class="keywordtype">int</span> axis, <span class="keywordtype">bool</span> positive)<span class="keyword"> override </span>{};</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    };</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclass_s_p_h_1_1_cell_list_html_a8ea5d710631cb6bb539065732a51e7e0"><div class="ttname"><a href="class_s_p_h_1_1_cell_list.html#a8ea5d710631cb6bb539065732a51e7e0">SPH::CellList::concurrent_particle_indexes_</a></div><div class="ttdeci">ConcurrentIndexVector concurrent_particle_indexes_</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:53</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a8c9d043f14c2b4c80f2fc7f7580d05bb"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a8c9d043f14c2b4c80f2fc7f7580d05bb">SPH::MeshCellLinkedList::UpdateCellLists</a></div><div class="ttdeci">virtual void UpdateCellLists() override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:36</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_particle_adaptation_html"><div class="ttname"><a href="class_s_p_h_1_1_particle_adaptation.html">SPH::ParticleAdaptation</a></div><div class="ttdoc">Base class for particle adaptation The base class defined essential global parameteres....</div><div class="ttdef"><b>Definition:</b> particle_adaptation.h:52</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html">SPH::MultilevelMeshCellLinkedList</a></div><div class="ttdoc">Defining a multilvel level set for a complex region.</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:152</div></div>
<div class="ttc" id="anamespace_s_p_h_html_a720b2214c518c3299a6d4895dacddc50"><div class="ttname"><a href="namespace_s_p_h.html#a720b2214c518c3299a6d4895dacddc50">SPH::ParticleConfiguration</a></div><div class="ttdeci">StdLargeVec&lt; Neighborhood &gt; ParticleConfiguration</div><div class="ttdef"><b>Definition:</b> neighbor_relation.h:61</div></div>
<div class="ttc" id="anamespace_s_p_h_html_a54f9b375e654fcf04192f5a123495808"><div class="ttname"><a href="namespace_s_p_h.html#a54f9b375e654fcf04192f5a123495808">SPH::CellLists</a></div><div class="ttdeci">StdLargeVec&lt; CellList * &gt; CellLists</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:47</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a63755fbcd778da3d392e4625f6d570ef"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a63755fbcd778da3d392e4625f6d570ef">SPH::BaseMeshCellLinkedList::UpdateCellLists</a></div><div class="ttdeci">virtual void UpdateCellLists()=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_ad59e41c37c358ddd30fedd194f4e8673"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#ad59e41c37c358ddd30fedd194f4e8673">SPH::MeshCellLinkedList::computingSequence</a></div><div class="ttdeci">virtual void computingSequence(StdLargeVec&lt; size_t &gt; &amp;sequence) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:56</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_html"><div class="ttname"><a href="class_s_p_h_1_1_mesh.html">SPH::Mesh</a></div><div class="ttdoc">Abstract base class for cell-based mesh properties. The mesh is proposed for several functions....</div><div class="ttdef"><b>Definition:</b> base_mesh.h:99</div></div>
<div class="ttc" id="anamespace_s_p_h_html_a856451cbf2b050bbfc31b266ec4f7022"><div class="ttname"><a href="namespace_s_p_h.html#a856451cbf2b050bbfc31b266ec4f7022">SPH::CellListDataVector</a></div><div class="ttdeci">StdLargeVec&lt; ListData &gt; CellListDataVector</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:45</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_ada1a1f766ca5a8ba020bfaed1365fe20"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#ada1a1f766ca5a8ba020bfaed1365fe20">SPH::MeshCellLinkedList::deleteMeshDataMatrix</a></div><div class="ttdeci">virtual void deleteMeshDataMatrix() override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:24</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a7efecefce3a999c74b01a0167c597d18"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a7efecefce3a999c74b01a0167c597d18">SPH::MultilevelMeshCellLinkedList::InsertACellLinkedListDataEntry</a></div><div class="ttdeci">void InsertACellLinkedListDataEntry(size_t particle_index, Vecd particle_position) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:98</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_addc1a14963813126a2ddfd029ae6da53"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#addc1a14963813126a2ddfd029ae6da53">SPH::BaseMeshCellLinkedList::assignBaseParticles</a></div><div class="ttdeci">virtual void assignBaseParticles(BaseParticles *base_particles)=0</div></div>
<div class="ttc" id="aneighbor__relation_8h_html"><div class="ttname"><a href="neighbor__relation_8h.html">neighbor_relation.h</a></div><div class="ttdoc">There are the classes for neighboring particles. It saves the information for carring out pair intera...</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a69d520a6149f45c8938ba4329d3b92ad"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a69d520a6149f45c8938ba4329d3b92ad">SPH::MultilevelMeshCellLinkedList::tagMirrorBoundingCells</a></div><div class="ttdeci">virtual void tagMirrorBoundingCells(CellLists &amp;cell_lists, BoundingBox &amp;body_domain_bounds, int axis, bool positive) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:174</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_aed202e1ebf12cd1261f0fda8aa01137b"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#aed202e1ebf12cd1261f0fda8aa01137b">SPH::MultilevelMeshCellLinkedList::tagBodyPartByCell</a></div><div class="ttdeci">virtual void tagBodyPartByCell(CellLists &amp;cell_lists, std::function&lt; bool(Vecd, Real)&gt; &amp;check_included) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:133</div></div>
<div class="ttc" id="aclass_vecd_html"><div class="ttname"><a href="class_vecd.html">Vecd</a></div></div>
<div class="ttc" id="aclass_s_p_h_1_1_kernel_html"><div class="ttname"><a href="class_s_p_h_1_1_kernel.html">SPH::Kernel</a></div><div class="ttdoc">Abstract base class of a general SPH kernel function which is a smoothed Dirac delta function,...</div><div class="ttdef"><b>Definition:</b> base_kernel.h:52</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_ad980615aed277f748a06aa3ca97c3273"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#ad980615aed277f748a06aa3ca97c3273">SPH::BaseMeshCellLinkedList::updateSplitCellLists</a></div><div class="ttdeci">virtual void updateSplitCellLists(SplitCellLists &amp;split_cell_lists)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a0a14361278e2f504cba9627766dbb8a3"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a0a14361278e2f504cba9627766dbb8a3">SPH::MultilevelMeshCellLinkedList::UpdateCellLists</a></div><div class="ttdeci">virtual void UpdateCellLists() override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:112</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a811c9f52e53982d2e66202625e682c30"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a811c9f52e53982d2e66202625e682c30">SPH::BaseMeshCellLinkedList::tagBodyPartByCell</a></div><div class="ttdeci">virtual void tagBodyPartByCell(CellLists &amp;cell_lists, std::function&lt; bool(Vecd, Real)&gt; &amp;check_included)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a0c8fb4ae37692882730a4159b67cba1b"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a0c8fb4ae37692882730a4159b67cba1b">SPH::MultilevelMeshCellLinkedList::insertACellLinkedParticleIndex</a></div><div class="ttdeci">void insertACellLinkedParticleIndex(size_t particle_index, Vecd particle_position) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:91</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a18327f6cebb5394cab4a0f8cd9a46bde"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a18327f6cebb5394cab4a0f8cd9a46bde">SPH::BaseMeshCellLinkedList::BaseMeshCellLinkedList</a></div><div class="ttdeci">BaseMeshCellLinkedList(SPHBody &amp;sph_body, ParticleAdaptation &amp;particle_adaptation, BoundingBox tentative_bounds, Real grid_spacing, size_t buffer_width=2)</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:16</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a8746ce9df2de1eaae23f8db58e338d3c"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a8746ce9df2de1eaae23f8db58e338d3c">SPH::MeshCellLinkedList::insertACellLinkedParticleIndex</a></div><div class="ttdeci">void insertACellLinkedParticleIndex(size_t particle_index, Vecd particle_position) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:79</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_acc8ee99cca328cd3040266a1b9a128d1"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#acc8ee99cca328cd3040266a1b9a128d1">SPH::MultilevelMeshCellLinkedList::computingSequence</a></div><div class="ttdeci">virtual void computingSequence(StdLargeVec&lt; size_t &gt; &amp;sequence) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:171</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a7a61370575f4582beede1b5f8f62d51a"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a7a61370575f4582beede1b5f8f62d51a">SPH::MultilevelMeshCellLinkedList::getMeshLevel</a></div><div class="ttdeci">size_t getMeshLevel(Real particle_cutoff_radius)</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:79</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a483dd019eb53161f090387a08054b233"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a483dd019eb53161f090387a08054b233">SPH::MultilevelMeshCellLinkedList::assignBaseParticles</a></div><div class="ttdeci">virtual void assignBaseParticles(BaseParticles *base_particles) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:104</div></div>
<div class="ttc" id="anamespace_s_p_h_html_a7fbc15167459a37683f40cb4a5aa0f06"><div class="ttname"><a href="namespace_s_p_h.html#a7fbc15167459a37683f40cb4a5aa0f06">SPH::ListData</a></div><div class="ttdeci">std::pair&lt; size_t, Vecd &gt; ListData</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:43</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a45cd0d458dd88bbb4a6ae84c786c6655"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a45cd0d458dd88bbb4a6ae84c786c6655">SPH::MeshCellLinkedList::writeMeshToPltFile</a></div><div class="ttdeci">virtual void writeMeshToPltFile(std::ofstream &amp;output_file) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:203</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_particles_html"><div class="ttname"><a href="class_s_p_h_1_1_base_particles.html">SPH::BaseParticles</a></div><div class="ttdoc">Particles with essential (geometric and kinematic) data. There are three types of particles， all part...</div><div class="ttdef"><b>Definition:</b> base_particles.h:65</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a779f66201dda742f7888bd6f17dc4288"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a779f66201dda742f7888bd6f17dc4288">SPH::MeshCellLinkedList::cell_linked_lists_</a></div><div class="ttdeci">matrix_cell cell_linked_lists_</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:116</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a366378431a76e4d2bc1c5020b94f5822"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a366378431a76e4d2bc1c5020b94f5822">SPH::MeshCellLinkedList::updateSplitCellLists</a></div><div class="ttdeci">virtual void updateSplitCellLists(SplitCellLists &amp;split_cell_lists) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:58</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_ad080cedda0ee36819b73dddfbbc1aa99"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#ad080cedda0ee36819b73dddfbbc1aa99">SPH::BaseMeshCellLinkedList::insertACellLinkedParticleIndex</a></div><div class="ttdeci">virtual void insertACellLinkedParticleIndex(size_t particle_index, Vecd particle_position)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a946badf5235c75ef060f9a5081424b04"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a946badf5235c75ef060f9a5081424b04">SPH::MeshCellLinkedList::tagBodyPartByCell</a></div><div class="ttdeci">virtual void tagBodyPartByCell(CellLists &amp;cell_lists, std::function&lt; bool(Vecd, Real)&gt; &amp;check_included) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:122</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_cell_list_html_a2ca9d9c369de81d5d6d005264d681ab4"><div class="ttname"><a href="class_s_p_h_1_1_cell_list.html#a2ca9d9c369de81d5d6d005264d681ab4">SPH::CellList::cell_list_data_</a></div><div class="ttdeci">CellListDataVector cell_list_data_</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:55</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_ab081c836d1f163a2cae719300ea9e788"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#ab081c836d1f163a2cae719300ea9e788">SPH::MultilevelMeshCellLinkedList::findNearestListDataEntry</a></div><div class="ttdeci">virtual ListData findNearestListDataEntry(Vecd &amp;position) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:170</div></div>
<div class="ttc" id="abase__mesh_8h_html"><div class="ttname"><a href="base__mesh_8h.html">base_mesh.h</a></div><div class="ttdoc">This is the base classes of mesh, which describe ordered and indexed data sets. Depending on applicat...</div></div>
<div class="ttc" id="anamespace_s_p_h_html_a1d45b2f40a5958c27e08837b107dc995"><div class="ttname"><a href="namespace_s_p_h.html#a1d45b2f40a5958c27e08837b107dc995">SPH::ConcurrentIndexVector</a></div><div class="ttdeci">LargeVec&lt; size_t &gt; ConcurrentIndexVector</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:40</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a29380e67d8417f62a13c9b1ba949d80d"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a29380e67d8417f62a13c9b1ba949d80d">SPH::MultilevelMeshCellLinkedList::tagBodyDomainBoundingCells</a></div><div class="ttdeci">virtual void tagBodyDomainBoundingCells(StdVec&lt; CellLists &gt; &amp;cell_lists, BoundingBox &amp;body_domain_bounds, int axis) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:173</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html">SPH::MeshCellLinkedList</a></div><div class="ttdoc">Defining a mesh cell linked list for a body. The meshes for all bodies share the same global coordina...</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:111</div></div>
<div class="ttc" id="anamespace_s_p_h_html_ac592bbe202be73decfcbfe8201484ffa"><div class="ttname"><a href="namespace_s_p_h.html#ac592bbe202be73decfcbfe8201484ffa">SPH::SplitCellLists</a></div><div class="ttdeci">StdVec&lt; ConcurrentCellLists &gt; SplitCellLists</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:55</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_ac40dd15b13323d2d2a1c308cbf807af7"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#ac40dd15b13323d2d2a1c308cbf807af7">SPH::BaseMeshCellLinkedList::findNearestListDataEntry</a></div><div class="ttdeci">virtual ListData findNearestListDataEntry(Vecd &amp;position)=0</div></div>
<div class="ttc" id="anamespace_s_p_h_html_abae56fd7f25f13487c7943ce4681d0ce"><div class="ttname"><a href="namespace_s_p_h.html#abae56fd7f25f13487c7943ce4681d0ce">SPH::IndexVector</a></div><div class="ttdeci">StdVec&lt; size_t &gt; IndexVector</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:38</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_cell_linked_list_html_a51ef5b9d251f71431f85a7c1ce823229"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh_cell_linked_list.html#a51ef5b9d251f71431f85a7c1ce823229">SPH::MultilevelMeshCellLinkedList::updateSplitCellLists</a></div><div class="ttdeci">virtual void updateSplitCellLists(SplitCellLists &amp;split_cell_lists) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:157</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a944de97f05bd6329ef454d9fd2bd483d"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a944de97f05bd6329ef454d9fd2bd483d">SPH::BaseMeshCellLinkedList::InsertACellLinkedListDataEntry</a></div><div class="ttdeci">virtual void InsertACellLinkedListDataEntry(size_t particle_index, Vecd particle_position)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_afc6a8456e3cd0b9c5a48a24bc527aec8"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#afc6a8456e3cd0b9c5a48a24bc527aec8">SPH::MeshCellLinkedList::tagBodyDomainBoundingCells</a></div><div class="ttdeci">virtual void tagBodyDomainBoundingCells(StdVec&lt; CellLists &gt; &amp;cell_lists, BoundingBox &amp;body_domain_bounds, int axis) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:140</div></div>
<div class="ttc" id="anamespace_s_p_h_html_ad185cdeb05bdee76bf975cc50f1c15b7"><div class="ttname"><a href="namespace_s_p_h.html#ad185cdeb05bdee76bf975cc50f1c15b7">SPH::BoundingBox</a></div><div class="ttdeci">std::pair&lt; Vecd, Vecd &gt; BoundingBox</div><div class="ttdef"><b>Definition:</b> sph_data_conainers.h:19</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_s_p_h_body_html"><div class="ttname"><a href="class_s_p_h_1_1_s_p_h_body.html">SPH::SPHBody</a></div><div class="ttdoc">SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body,...</div><div class="ttdef"><b>Definition:</b> base_body.h:63</div></div>
<div class="ttc" id="anamespace_s_p_h_html"><div class="ttname"><a href="namespace_s_p_h.html">SPH</a></div><div class="ttdef"><b>Definition:</b> solid_body_supplementary.cpp:9</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_abd59a167627596a884755d3d16000b75"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#abd59a167627596a884755d3d16000b75">SPH::MeshCellLinkedList::findNearestListDataEntry</a></div><div class="ttdeci">virtual ListData findNearestListDataEntry(Vecd &amp;position) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:93</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_af111d1a1118c6db6a19d8b44811393d0"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#af111d1a1118c6db6a19d8b44811393d0">SPH::BaseMeshCellLinkedList::computingSequence</a></div><div class="ttdeci">virtual void computingSequence(StdLargeVec&lt; size_t &gt; &amp;sequence)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_multilevel_mesh_html"><div class="ttname"><a href="class_s_p_h_1_1_multilevel_mesh.html">SPH::MultilevelMesh</a></div><div class="ttdoc">Multi level Meshes with successively double the resolutions.</div><div class="ttdef"><b>Definition:</b> base_mesh.h:140</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_cell_list_html"><div class="ttname"><a href="class_s_p_h_1_1_cell_list.html">SPH::CellList</a></div><div class="ttdoc">The linked list for one cell.</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:49</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_aa83d5000985b89b40625299fab372fea"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#aa83d5000985b89b40625299fab372fea">SPH::MeshCellLinkedList::searchNeighborsByParticles</a></div><div class="ttdeci">void searchNeighborsByParticles(size_t total_real_particles, BaseParticles &amp;source_particles, ParticleConfiguration &amp;particle_configuration, GetParticleIndex &amp;get_particle_index, GetSearchRange &amp;get_search_range, GetNeighborRelation &amp;get_neighbor_relation)</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.hpp:16</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_cell_list_html_a399df456f271a30ca523db0a4f46e520"><div class="ttname"><a href="class_s_p_h_1_1_cell_list.html#a399df456f271a30ca523db0a4f46e520">SPH::CellList::real_particle_indexes_</a></div><div class="ttdeci">IndexVector real_particle_indexes_</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:57</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a6c8a9a16b596c2f50eb016060040dcea"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a6c8a9a16b596c2f50eb016060040dcea">SPH::BaseMeshCellLinkedList::tagMirrorBoundingCells</a></div><div class="ttdeci">virtual void tagMirrorBoundingCells(CellLists &amp;cell_lists, BoundingBox &amp;body_domain_bounds, int axis, bool positive)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a1b58d3ca4e60cb4a8cea294e8d4f8f1b"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a1b58d3ca4e60cb4a8cea294e8d4f8f1b">SPH::MeshCellLinkedList::assignBaseParticles</a></div><div class="ttdeci">virtual void assignBaseParticles(BaseParticles *base_particles) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:51</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a22672d86d257723623d17c2d033d0378"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a22672d86d257723623d17c2d033d0378">SPH::MeshCellLinkedList::tagMirrorBoundingCells</a></div><div class="ttdeci">virtual void tagMirrorBoundingCells(CellLists &amp;cell_lists, BoundingBox &amp;body_domain_bounds, int axis, bool positive) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:171</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a987e39e47f21fff71ee821444dce62ed"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a987e39e47f21fff71ee821444dce62ed">SPH::BaseMeshCellLinkedList::clearSplitCellLists</a></div><div class="ttdeci">virtual void clearSplitCellLists(SplitCellLists &amp;split_cell_lists)</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.cpp:22</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a9c613140524b249bacdda660ea034c4f"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a9c613140524b249bacdda660ea034c4f">SPH::MeshCellLinkedList::allocateMeshDataMatrix</a></div><div class="ttdeci">virtual void allocateMeshDataMatrix() override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:19</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html_a0f5b0383f2668019643df8761246527c"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html#a0f5b0383f2668019643df8761246527c">SPH::BaseMeshCellLinkedList::tagBodyDomainBoundingCells</a></div><div class="ttdeci">virtual void tagBodyDomainBoundingCells(StdVec&lt; CellLists &gt; &amp;cell_lists, BoundingBox &amp;body_domain_bounds, int axis)=0</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_base_mesh_cell_linked_list_html"><div class="ttname"><a href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">SPH::BaseMeshCellLinkedList</a></div><div class="ttdoc">Abstract class for mesh cell linked list.</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list.h:67</div></div>
<div class="ttc" id="aclass_s_p_h_1_1_mesh_cell_linked_list_html_a7c9cf2d1e07d89889290ee1898360837"><div class="ttname"><a href="class_s_p_h_1_1_mesh_cell_linked_list.html#a7c9cf2d1e07d89889290ee1898360837">SPH::MeshCellLinkedList::InsertACellLinkedListDataEntry</a></div><div class="ttdeci">void InsertACellLinkedListDataEntry(size_t particle_index, Vecd particle_position) override</div><div class="ttdef"><b>Definition:</b> mesh_cell_linked_list_supplementary.cpp:86</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
